#pragma once
#include <iostream>
#include <vector>
#include <list>

using namespace std;

namespace lcl
{
	template<class T, class Continar>
	class stack
	{
	public:
		void push(const T& x) { _con.push_back(x); }
		void pop() { _con.pop_back(); }
		size_t size() { _con.size(); }
		bool empty() { return _con.empty(); }
		T& top() { return _con.back(); }
	private:
		Continar _con;
	};

	void test()
	{
		//stack<int, vector<int>> st;
		stack<int, list<int>> st;

		st.push(1);
		st.push(2);

		while (!st.empty())
		{
			cout << st.top() << " ";
			st.pop();
		}
		cout << endl;
	}
}